describe('template spec', () => {
  it('passes', () => {
    cy.visit('https://magali-contensin.pedaweb.univ-amu.fr/extranet/imdb/films/year/2000/genre/action')

    // cy.title() récupère le titre de la page HTML (contenu de l’élément title)
    // Le . permet de chaîner : le résultat de title() est utilisé par should
    // L’assertion should vérifie que la valeur de title est exactement Films
    // eq est une abréviation de equal (égalité stricte)
    cy.title().should('eq', 'Films')

    // cy.get(sel) sélectionne les éléments du DOM correspondant au sélecteur CSS
    // Il y a un seul h1 dans la page => un seul élément retourné par cy.get('h1')
    // L’assertion should vérifie que le texte du h1 est 'Liste des films'
    cy.get('h1').should('contain.text', 'Liste')

    // 4. Vérifier que le champ du formulaire existe pour saisir l’année
    cy.get('input[id="year_exact"]').should('exist')

    // 5. Vérifier qu’il y a un select pour saisir le genre
    cy.get('select[id="genre"]').should('exist')

    // 6. Vérifier la présence du bouton d’envoi du formulaire de recherche
    cy.get('button[type="submit"]').should('exist').should('contain.text', 'Rechercher')

    // 7. Remplir le champ année du formulaire avec l’année 1980
    cy.get('input[id="year_exact"]').clear().type('1980')

    // 8. Choisir le genre Action
    cy.get('select[id="genre"]').select('Action')

    // 9. Cliquer sur le bouton « Rechercher »
    cy.get('button[type="submit"]').filter(':contains("Rechercher")').click()

    // 10. Vérifier que le résultat comporte un film dont le titre contient « The Empire Strikes Back »
    cy.get('div[class="card-body"]').contains("The Empire Strikes Back")

    // 11. Cliquer sur le lien qui montre le casting pour ce film
    cy.get('div[class="card-body"]').get('h5').filter(':contains("The Empire Strikes Back")').parent().find('a[title="Voir le casting"]').click()

    // 12. Vérifier que la page chargée contient /film/ dans l’URL
    cy.url().should('include', '/film/')

    // 13. Vérifier que la page affichée contient exactement le titre h3 Distribution
    cy.get('h3').should('have.text', 'Distribution')

    // 14. Cliquer sur le 2e acteur affiché (Harrison Ford)
    cy.get('div[class="card-body"]').get('a').filter(':contains("Harrison Ford")').click()
    
    // 15. Vérifier que la page chargée contient /person/ dans l’URL
    cy.url().should('include', '/person/')

    // 16. Cliquer sur le lien du film Blade Runner
    cy.get('div[class="card-body"]').get('a').filter(':contains("Blade Runner")').eq(0).click()

    // 17. Vérifier que le titre du film affiché contient Blade Runner
    cy.get('h3').should('contain.text', 'Blade Runner')
  })
})